# !/usr/bin/env python
# -*- coding: utf-8 -*-
# ------------------------------
''''''

# import socket

# def main():
'''
发送信息
'''
#     # udp_socket = socket.socket(ip类型（ipv4(AF_INET) or ipv6）, 协议类型（udp or tcp）)
#     # 创建一个socket套接字
#     udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#     udp_socket.sendto(b'hahahh', ('192.168.245.1', 8080))
#     # 关闭套接字
#     udp_socket.close()
# def main():
#     '''
#     接收信息
#     '''
#     # 创建一个套接字socket
#     upt_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#     # 绑定该程序的端口  绑定程序端口仅仅限于在该程序中
#     local_address = ('', 8848)
#     upt_socket.bind(local_address)
#     # 接收数据
#     receive_data = upt_socket.recvfrom(1024)   # 括号里是接受的字节数限制
#     # 处理数据
#     sent_address = receive_data[-1]
#     sent_content = receive_data[0]
#     # 打印数据
#     # print('{}:{}'.format(sent_address, sent_content.decode('utf-8')))  # windows使用的是gbk编码器，汉字不可用这个
#     print('{}:{}'.format(sent_address, sent_content.decode('gbk')))
# if __name__ == '__main__':
#     main()
#

import socket


def senddef(udp_socket):
    '''发送信息'''
    send_ip = input('请输入要发送地址的ip：')
    send_port = int(input('请输入要发送的目的端口：'))
    send_content = input('请输入要发送：')
    udp_socket.sendto(send_content.encode('utf-8'), (send_ip, send_port))

def receicedef(udp_socket):
    '''接收信息'''
    recv_mag = udp_socket.recvfrom(1024)
    return recv_mag

def main():
    # 建立套接字
    udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    # 绑定该程序端口
    udp_adderss = ('', 8848)
    udp_socket.bind(udp_adderss)
    # 建立菜单
    while True:
        print('--------*udp聊天器*--------')
        print('--1.sent        2.receice--')
        print('---------0.exit------------')
        op = input('请输入选项：')
        if op == '1':
            # 建立发送信息接口
            senddef(udp_socket)
        elif op == '2':
            # 建立接收信息接口
            recv_mag = receicedef(udp_socket)
            # 打印接收信息
            print('{}:{}\n'.format(recv_mag[1], recv_mag[0].decode('gbk')))
        elif op == '0':
            print('---------exiting...--------')
            break
        else:
            print('对不起！输入错误')

    # 关闭套接字
    udp_socket.close()

    # 半双工聊天器
if __name__ == '__main__':
    main()